ποΈGitΠ―ΡΠ°ποΈ
.github/copilot-instructions.md 7bdd0d5c788b158e9f19fb9272d5b694405e3b7e (7bdd0d5c) Text, 2.82 KB
Meshtastic Android β Copilot Instructions
β Full rules: T383838AGENTS.md is the source of truth. This file is a compact quick-reference for build
β commands and task naming. For architecture, conventions, and workflow details, consult T383838AGENTS.md
β and the T383838.skills/ playbooks.
Build, Test & Lint
Requires: JDK 21, T383838ANDROID_HOME set, proto submodule initialized.
T282828
T8b949e# Bootstrap (run once per fresh clone)
git submodule update --init
Tff7b72[ -f local.properties Tff7b72] Tff7b72|| cp secrets.defaults.properties local.properties
T8b949e# Full local verification (formatting β lint β compile β tests)
./gradlew spotlessApply detekt assembleDebug Tffa657test allTests
T8b949e# Single module tests (KMP module)
./gradlew :core:data:allTests
T8b949e# Single module tests (Android-only module like :app)
./gradlew :androidApp:testFdroidDebugUnitTest
T8b949e# Cross-platform compilation check (no tests)
./gradlew kmpSmokeCompile
T8b949e# Flavor-specific lint
./gradlew lintFdroidDebug lintGoogleDebug
β Both T383838test AND T383838allTests are needed. T383838allTests covers KMP modules; T383838test covers pure-Android modules.
β Neither alone catches everything.
Gradle task naming (KMP vs Android-only)
KMP modules have different task names than pure-Android modules. Using the wrong name silently skips tests or fails resolution.
βββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββ
β Intent β KMP modules (`BT383838`Fdddcore:*`f`b, `BT383838`Fdddfeature:*`f`b) β Android-only (`BT383838`Fdddapp`f`b, `BT383838`Fdddcore:api`f`b, `BT383838`Fdddcore:barcode`f`b) β
βββββββββββββββββΌββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββ€
β Run tests β T383838:module:allTests β T383838:module:testFdroidDebugUnitTest β
β Detekt β T383838:module:detekt (lifecycle task) β T383838:module:detekt β
β Compile check β T383838:module:compileKotlinJvm β T383838:module:compileFdroidDebugKotlin β
βββββββββββββββββ΄ββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββ
Common mistakes:
β’ β T383838:core:network:detektMain β does not exist in KMP; variants are T383838detektJvmMain, T383838detektMetadataCommonMain, etc. Use T383838:core:network:detekt instead.
β’ β T383838:feature:connections:testDebugUnitTest β ambiguous in KMP modules. Use T383838:feature:connections:allTests.
β’ β T383838:feature:connections:compileFdroidDebugKotlin β wrong for KMP. Use T383838:feature:connections:compileKotlinJvm or T383838kmpSmokeCompile.
Quick Reference
β’ Architecture: KMP project (Android, Desktop, iOS). Business logic in T383838commonMain; platform shells (T383838androidApp/, T383838desktopApp/) wire DI and host UI.
β’ Flavors: T383838fdroid (OSS) / T383838google (Maps + DataDog). Only one installable at a time (different signing keys).
β See T383838AGENTS.md for full rules (verify before push, branch naming, protos, coding conventions).
β Contextual T383838.github/instructions/ files enforce conventions scoped to relevant source sets.
<!-- SPECKIT START -->
For additional context about technologies to be used, project structure,
shell commands, and other important information, read the current plan
<!-- SPECKIT END -->
Served by rngit 1.5.2 - Generated in 0.05s